Existence okna

Otázka od: LUKES Vaclav

8. 12. 2003 7:33

Ahoj,

muzete mi prosim poradit ?

Za behu vytvarim ruzna okna (create).
Existuje nejaka procedura nebo funkce, ktera mi rekne, jestli okno existuje ci
nikoli, jestli bylo vytvorene nebo ne ?

Diky

V.


Odpovedá: Petr Brant

8. 12. 2003 8:12

Pokud je vytvaris sam, tak neni nic jednodussiho, nez si pointery na
jednotlive instance ukladat napr. do TListu:

okno1:= TOkno1.Create(...);
SeznamOken.Add(okno1);
...
...a pak se muzes divat:

for i:= 0 to SeznamOken.Count - 1 do
 if TForm(SeznamOken.Items[i])<> nil then....


Zdravim a preji uspech

RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant <http://web.redbox.cz/petr.brant>


> Za behu vytvarim ruzna okna (create).
> Existuje nejaka procedura nebo funkce, ktera mi rekne, jestli okno
> existuje ci nikoli, jestli bylo vytvorene nebo ne ?
>

Odpovedá: Lebeda David

8. 12. 2003 8:52

> Za behu vytvarim ruzna okna (create).
> Existuje nejaka procedura nebo funkce, ktera mi rekne, jestli okno
> existuje ci nikoli, jestli bylo vytvorene nebo ne ?

Ahoj,

to dost dobre nejde, zalezi hlavne na Tvoji kazni. Pokud si odkaz na
instanci okna uchovavas v globalnich promennych, tak ti pomuze
predevsim to, ze pri kazdem Free nebo Release do te globalni
promenne strcis nil. Mozna by pomohlo to rovnou delat v OnDestroy
okna. Pokud ale muze jedno okno existovat ve vice instancich, tak ti
obycejna globalni promenna nepomuze - pak mas asi svuj vlastni
seznam. Tam plati vicemene totez, akorat uz to asi nedokazes resit
v OnDestroy a musis nil prirazovat sam. Pro otestovani existence
okna te pak uz jen zajima, zda prislusna promenna je ci neni nil.

David Lebeda

Odpovedá: Petr Fejfar

8. 12. 2003 8:51

From: "Lebeda David" <david.lebeda@comarr.cz>

> > Za behu vytvarim ruzna okna (create).
> > Existuje nejaka procedura nebo funkce, ktera mi rekne, jestli okno
> > existuje ci nikoli, jestli bylo vytvorene nebo ne ?
>
> Ahoj,
>
> to dost dobre nejde, zalezi hlavne na Tvoji kazni. Pokud si odkaz na
[...]

K tomu ucelu existuji properties TScreen.Forms[] a TScreen.CustomForms[].
Kazdy konstruktor TCustomForm automaticky vlozi instanci do seznamu a
destruktor ji vyhodi.

HTH, pf


Odpovedá: Lauko Stefan

8. 12. 2003 8:58

----- Original Message -----
From: "LUKES Vaclav" <lukes@ans.cz>
Sent: Monday, December 08, 2003 7:32 AM
> Za behu vytvarim ruzna okna (create).
> Existuje nejaka procedura nebo funkce, ktera mi rekne, jestli okno
existuje ci nikoli, jestli bylo vytvorene nebo ne ?

Screen.FormCount
Screen.Forms

Lauko.